home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Sound Cards
/
Programming Sound Cards.iso
/
sound_52
/
mtor.man
< prev
next >
Wrap
Text File
|
1995-01-01
|
6KB
|
178 lines
mtor RAVEL mtor
NNAAMMEE
mtor - Ravel midi file format to Ravel translator
SSYYNNOOPPSSIISS
mmttoorr [-b][-t][-s scale] [-p poff] <filename>
DDEESSCCRRIIPPTTIIOONN
mmttoorr is a program that translates from Midi Files Format to a
subset of the Ravel music programming language.
mmttoorr is a new Ravel utility and may be said to be in
beta-test at this point in time. There should be a matching rrttoomm
utility to translate the other way, but there currently is not.
There may be bugs large and small. Please report any
difficulties.
Mtor is based on a midi file format package supplied by Tim
Thompson and may be considered public domain in entirety. Mtor
is supplied as a free part of the Ravel package. (This won't do
anybody much good, but so it goes). Credit is due to Tim
Thompson for making his midi file library available. Any defects
found herein are not Tim Thompson's responsiblity.
mmttoorr takes an input file that is a midi files format and
reads the binary file translating into some number of "vco"
structures, one per track. The output is ASCII and is written to
stdout. It may be redirected to a file using a shell redirect
'>'; e.g.,
dos> mtor input.mid > output.ma
The resulting ".ma" file may be translated by "mc" and played
with "mos". Since it is an ASCII file, it can be edited with an
normal editor.
mmttoorr only handles the following Ravel actions at this
point: sig, rest, note (duration), key, tie, patch, ccont, kat,
cat, metro, bend, vco...end. This is to say that anything else
found in a midi file format that does not fit into the above
Ravel pigeonholes will not be translated. In many cases Ravel
comments about untranslatable entities are produced. In general,
multiple midi tracks are translated into multiple vco streams.
This is done so that the file can be translated immediately and
played under mos. However such vco streams can always be
slightly recoded into suitable action data structures if
desired.
Note that switches are optional. This is denoted by placing
[] characters around the switch. The switch notation is "-",
January 28, 1990 page 1
which is the Unix convention. Msdos switches will not work. The
program is looking for "-".
The [[--ss ssccaallee]] scale switch is used for scaling down event
times; i.e., events per quarter note. The default scale is 1. If
a larger value is set, that value is used to divide all internal
beats per quarter note values. If the scale switch is not set,
and the midi header division value is evenly divisible by 24,
the internal scale will be overridden by the division; i.e.,
things will adjust correctly by themselves. This is what
normally should happen. Conversely if the scale switch is set,
any internal midi division value will be overridden. Note that
Ravel treats a quarter note as 24 events. When translating from
Cakewalk, which has 120 events per quarter note, one might
choose to set -s to 5 to scale 120 events to 24 events. This
would have some unwanted quantization, although an attempt is
made to issue rests occasionally when an internal slop counter
overflows. The scale switch may always be used to specify a
different non-zero scaling factor. A scaling factor of 1 would
preserve the Cakewalk units, but of course the piece would run
slower at the same meter. If scaling is set, all event times
(elapsed events and durations) are scaled.
The [[--pp ppooffff]] switch is optional and will set the pitch
bend offset to whatever non-zero value is given. The pitch bend
offset defaults to 64 if not set. The pitch bend range in MIDI
is a 14 bit unsigned number; in decimal this is 0 to 16383. A
centered wheel has the value 8192. Ravel uses a "pseudo-op"
called the "poff" or pitch bend offset that is multiplied
internally against the value used with the pitch bend action;
e.g.,
bend q 128
is the value for a centered wheel, since 128 * 64 = 8192. Note
that a pitch offset of 1 will leave the units unscaled. This may
be a useful thing to do when translating from CAKEWALK to Ravel,
since loss of precision may result from division.
Time constants are not translated unless the [[--tt]] switch is
given. Time constants are translated if and only if there is a
suitable Ravel constant; otherwise they are left in decimal.
If the [[--bb]] switch is given, pitch bend information is
removed from the streams. If a pitch bend has a non-zero event
time, this is translated into a tie. This is useful for removing
extraneous pitch bends that might be produced by a guitar
controller.
January 28, 1990 page 2
SSEEEE AALLSSOO
rtoc, mc, mos.
BBUUGGSS
mtor is a new utility and has not been tested much at this
point. There are undoubtedly some flaws.
January 28, 1990 page 3